Free state.children in all cases. (#313862, Kjartan Maraas)
authorMatthias Clasen <mclasen@redhat.com>
Mon, 29 Aug 2005 04:38:52 +0000 (04:38 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Mon, 29 Aug 2005 04:38:52 +0000 (04:38 +0000)
2005-08-29  Matthias Clasen  <mclasen@redhat.com>

* gdk/x11/gdkasync.c (_gdk_x11_get_window_child_info): Free
state.children in all cases.  (#313862, Kjartan Maraas)

ChangeLog
ChangeLog.pre-2-10
gdk/x11/gdkasync.c

index 2195e7be183005f42ffc666f46f5d30197c1041f..3dea27a379c33a3b52cddb10f1a474a7dea1855c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-08-29  Matthias Clasen  <mclasen@redhat.com>
+
+       * gdk/x11/gdkasync.c (_gdk_x11_get_window_child_info): Free 
+       state.children in all cases.  (#313862, Kjartan Maraas)
+
 2005-08-28  Matthias Clasen  <mclasen@redhat.com>
 
        * po/POTFILES.in, po-properties/POTFILES.in:
index 2195e7be183005f42ffc666f46f5d30197c1041f..3dea27a379c33a3b52cddb10f1a474a7dea1855c 100644 (file)
@@ -1,3 +1,8 @@
+2005-08-29  Matthias Clasen  <mclasen@redhat.com>
+
+       * gdk/x11/gdkasync.c (_gdk_x11_get_window_child_info): Free 
+       state.children in all cases.  (#313862, Kjartan Maraas)
+
 2005-08-28  Matthias Clasen  <mclasen@redhat.com>
 
        * po/POTFILES.in, po-properties/POTFILES.in:
index d0cf7e94b3628eebf308c658ca7251015c1e9879..e360bf1a15c5c210be5aadf6d9274a7e115dc2c6 100644 (file)
@@ -626,6 +626,9 @@ _gdk_x11_get_window_child_info (GdkDisplay       *display,
   else
     wm_state_atom = None;
 
+  state.children = NULL;
+  state.nchildren = 0;
+
   gdk_error_trap_push ();
   result = list_children_and_wm_state (dpy, window,
                                       win_has_wm_state ? wm_state_atom : None,
@@ -633,12 +636,16 @@ _gdk_x11_get_window_child_info (GdkDisplay       *display,
                                       &state.children, &state.nchildren);
   gdk_error_trap_pop ();
   if (!result)
-    return FALSE;
+    {
+      g_free (state.children);
+      return FALSE;
+    }
 
   if (has_wm_state)
     {
       if (win_has_wm_state)
        *win_has_wm_state = TRUE;
+      g_free (state.children);
       return TRUE;
     }
   else